/**
 * 地图功能测试脚本
 * 在浏览器Console中执行以下命令测试各项功能
 */

// ============ 基础检查 ============

// 1. 检查地图对象是否初始化
console.log('=== 地图对象检查 ===');
console.log('地图对象存在:', typeof map !== 'undefined');
console.log('高德API版本:', typeof AMap !== 'undefined' ? AMap.version : '未加载');
console.log('当前位置:', userLocation);

// 2. 检查用户标记
console.log('\n=== 用户标记检查 ===');
console.log('用户标记存在:', userMarker !== null);
if (userMarker) {
    console.log('标记位置:', userMarker.getPosition());
}

// 3. 检查地理编码服务
console.log('\n=== 地理编码服务 ===');
console.log('Geocoder加载:', geocoder !== null);

// ============ 功能测试 ============

// 测试1: 获取地图中心点
function testMapCenter() {
    const center = map.getCenter();
    console.log('地图中心:', {
        lng: center.getLng(),
        lat: center.getLat()
    });
}

// 测试2: 手动设置位置并测试定位
function testLocation(lng, lat, name) {
    console.log(`\n测试定位到: ${name}`);
    userLocation = { lng, lat };
    updateUserLocation(`测试:${name}`);
}

// 测试3: 测试搜索功能
function testSearch(keyword) {
    console.log(`\n测试搜索: ${keyword}`);
    document.getElementById('searchInput').value = keyword;
    searchOnMapPage();
}

// 测试4: 测试附近活动搜索
function testNearbySearch(radius) {
    console.log(`\n测试搜索半径: ${radius}米`);
    document.getElementById('radiusFilter').value = radius;
    searchNearbyActivities();
}

// 测试5: 查看所有活动标记
function listActivityMarkers() {
    console.log('\n=== 活动标记列表 ===');
    console.log('标记总数:', markers.length);
    markers.forEach((m, i) => {
        console.log(`${i + 1}. ID:${m.id} 位置:`, m.marker.getPosition());
    });
}

// 测试6: 逆地理编码测试
function testGeocoding(lng, lat) {
    if (geocoder) {
        geocoder.getAddress([lng, lat], function(status, result) {
            if (status === 'complete') {
                console.log('地址:', result.regeocode.formattedAddress);
            } else {
                console.log('获取地址失败');
            }
        });
    } else {
        console.log('Geocoder未初始化');
    }
}

// ============ 快速测试套件 ============

function runQuickTests() {
    console.log('\n========================================');
    console.log('开始快速测试...');
    console.log('========================================\n');
    
    // 测试1: 基础检查
    testMapCenter();
    
    // 测试2: 常见城市定位
    console.log('\n--- 城市定位测试 ---');
    const cities = [
        { lng: 116.4074, lat: 39.9042, name: '北京' },
        { lng: 121.4737, lat: 31.2304, name: '上海' },
        { lng: 113.2644, lat: 23.1291, name: '广州' },
        { lng: 114.0579, lat: 22.5431, name: '深圳' }
    ];
    
    console.log('可用测试城市:', cities.map(c => c.name).join(', '));
    console.log('使用方法: testLocation(116.4074, 39.9042, "北京")');
    
    // 测试3: 搜索测试
    console.log('\n--- 搜索功能测试 ---');
    console.log('搜索示例:');
    console.log('  testSearch("天安门")');
    console.log('  testSearch("上海外滩")');
    console.log('  testSearch("西湖")');
    
    // 测试4: 附近活动测试
    console.log('\n--- 附近活动测试 ---');
    console.log('搜索半径测试:');
    console.log('  testNearbySearch(1000)  // 1公里');
    console.log('  testNearbySearch(5000)  // 5公里');
    
    console.log('\n========================================');
    console.log('测试准备完成！');
    console.log('========================================\n');
}

// ============ 性能监控 ============

function monitorPerformance() {
    console.log('\n=== 性能监控 ===');
    
    // 检查标记数量
    console.log('活动标记数:', markers.length);
    console.log('用户标记:', userMarker ? '已创建' : '未创建');
    
    // 检查内存使用（Chrome）
    if (performance.memory) {
        const mb = 1024 * 1024;
        console.log('JS堆大小:', (performance.memory.usedJSHeapSize / mb).toFixed(2), 'MB');
        console.log('JS堆限制:', (performance.memory.jsHeapSizeLimit / mb).toFixed(2), 'MB');
    }
    
    // 地图容器大小
    const mapDiv = document.getElementById('map');
    console.log('地图容器:', mapDiv.clientWidth, 'x', mapDiv.clientHeight, 'px');
}

// ============ 调试工具 ============

function debugInfo() {
    console.log('\n========================================');
    console.log('地图调试信息');
    console.log('========================================');
    
    console.log('\n📍 位置信息:');
    console.log('  当前位置:', userLocation);
    console.log('  地图中心:', map.getCenter());
    console.log('  缩放级别:', map.getZoom());
    
    console.log('\n🗺️ 地图状态:');
    console.log('  地图尺寸:', map.getSize());
    console.log('  地图边界:', map.getBounds());
    
    console.log('\n📌 标记信息:');
    console.log('  活动标记:', markers.length, '个');
    console.log('  用户标记:', userMarker ? '存在' : '不存在');
    
    console.log('\n🔧 服务状态:');
    console.log('  Geocoder:', geocoder ? '已加载' : '未加载');
    console.log('  AMap版本:', AMap.version);
    
    console.log('\n========================================\n');
}

// ============ 使用说明 ============

console.log('\n┌─────────────────────────────────────┐');
console.log('│     地图功能测试工具已加载          │');
console.log('└─────────────────────────────────────┘\n');

console.log('📋 可用命令：\n');
console.log('  runQuickTests()      - 运行快速测试');
console.log('  debugInfo()          - 显示调试信息');
console.log('  monitorPerformance() - 性能监控');
console.log('  testMapCenter()      - 测试地图中心');
console.log('  testLocation(lng, lat, name) - 测试定位');
console.log('  testSearch(keyword)  - 测试搜索');
console.log('  testNearbySearch(radius) - 测试附近搜索');
console.log('  listActivityMarkers() - 列出所有活动标记');
console.log('  testGeocoding(lng, lat) - 测试地址解析\n');

console.log('💡 快速开始：输入 runQuickTests() 开始测试\n');
